using System;

namespace PropertyExpression.Common
{
    public interface IOption<out TValue>
    {
        TResult Process<TResult>(Func<TValue, TResult> existFunc, Func<TResult> notExistFunc);

        TValue Value { get; }

        bool HasValue { get; }
    }
}